from modules import *
import random
from utils.tools import 暂无数据,随机获取列表

class 人员_常住人口管理(Page_Object):
    def __init__(self, page: Page):
        super().__init__(page)
        self.请输入人员姓名 = self.page.get_by_placeholder("请输入人员姓名")
        self.请输入联系方式 = self.page.get_by_placeholder("请输入联系方式")
        self.请输入身份证号 = self.page.get_by_placeholder("请输入身份证号")
        self.请输入联系住址 = self.page.get_by_placeholder("请输入联系住址")
        self.请输入工作单位 = self.page.get_by_placeholder("请输入工作单位")

        self.搜索 = self.page.get_by_text("搜索")
        self.查询 = self.page.get_by_text("查询")
        self.重置 = self.page.get_by_text("重置")

        # self.暂无数据 = self.page.locator(".el-table__empty-text")
        self.搜索结果第一列 = self.page.locator(".el-table__body-wrapper").locator("tbody").locator("tr").nth(0).locator("td").nth(0)


    def navigate(self):
        self.跳转("/prose/person/person")

    def search_搜索(self, 请输入人员姓名, 请输入联系方式, 请输入身份证号):
        self.请输入人员姓名.fill(请输入人员姓名)
        self.查询.click()
        self.page.wait_for_timeout(3000)
        # 暂无数据(self.page)
        expect(self.搜索结果第一列).to_be_visible(timeout=2000)
        self.重置.click()
        self.page.wait_for_timeout(1000)

        self.请输入联系方式.fill(请输入联系方式)
        self.查询.click()
        self.page.wait_for_timeout(3000)
        # 暂无数据(self.page)
        expect(self.搜索结果第一列).to_be_visible(timeout=2000)
        self.重置.click()
        self.page.wait_for_timeout(1000)

        self.请输入身份证号.fill(请输入身份证号)
        self.查询.click()
        self.page.wait_for_timeout(3000)
        # 暂无数据(self.page)
        expect(self.搜索结果第一列).to_be_visible(timeout=2000)
        self.重置.click()
        self.page.wait_for_timeout(1000)

        self.请输入人员姓名.fill(请输入人员姓名)
        self.page.wait_for_timeout(500)
        self.请输入联系方式.fill(请输入联系方式)
        self.page.wait_for_timeout(500)
        self.请输入身份证号.fill(请输入身份证号)
        self.page.wait_for_timeout(500)
        self.查询.click()
        try:
            # 先检查"暂无数据"元素是否可见且文本匹配
            expect(self.page.locator(".el-table__empty-text")).to_be_visible()
            expect(self.page.locator(".el-table__empty-text")).to_have_text("暂无数据")
            print("确认：暂无数据")
        except Exception:
            # 如果"暂无数据"不满足条件，则期望搜索结果可见
            expect(self.搜索结果第一列).to_be_visible(timeout=2000)

        self.重置.click()
        self.page.wait_for_timeout(1000)

        '''
        街区 = self.街区
        count = 街区.count()  # 注意：Playwright 中 count() 是异步方法
        if count > 0:
            # 随机选择一个索引
            random_index = random.randint(0, count - 1)
            # 点击对应的 li
            街区.nth(random_index).click()
            社区 = self.社区
            count = 社区.count()
            if count > 0:
                random_index = random.randint(0, count - 1)
                # 点击对应的 li
                社区.nth(random_index).click()
                self.查询.click()
                expect(self.搜索结果第一列).to_be_visible(timeout=2000)
                self.重置.click()
        '''



